package com.cti.commons.mqtt.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.springframework.stereotype.Component;

import com.cti.commons.mqtt.domain.ShareMode;

@Component
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Topic {

    /**
     * 主题
     *
     * @return
     */
    String value();

    /**
     * 消息质量
     *
     * @return
     */
    int qos() default 1;

    /**
     * 订阅模式
     *
     * @return
     */
    ShareMode mode() default ShareMode.QUEUE;

    /**
     * 分组
     *
     * @return
     */
    String group() default "";

}
